package com.its.web;

import com.github.pagehelper.PageInfo;
import com.its.pojo.HupCompany;
import com.its.service.HupCompanyService;
import com.its.util.HttpStatusEnum;
import com.its.util.Result;
import com.its.web.param.HupCompanyControllerParam;
import io.swagger.annotations.Api;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;

/**
 * <p>
 * 公司表 前端控制器
 * </p>
 *
 * @author 朱厚强
 * @since 2023年12月27日
 */
@RestController
@RequestMapping("/hupCompany")
@Api(tags = "公司 -api")
public class HupCompanyController {
    @Autowired
    private HupCompanyService service;
    /**
     * 获取所有的公司信息
     * @return
     */
    @PostMapping("/pageList")
    public Result pagingList(@RequestBody HupCompanyControllerParam param){
        PageInfo<HupCompany> pageInfo = service.selectList(param);
        if (pageInfo.getSize() > 0){  // isEmpty()方法在列表为空时返回true，否则返回false。 Empty(中译 空的)
            return Result.ok().data(pageInfo).code(HttpStatusEnum.SUCCESS.getCode()).message("查询公司信息成功");
        }else {
            return Result.error().data(pageInfo).code(HttpStatusEnum.ERROR.getCode()).message("查询公司信息失败");
        }
    }
    /**
     * 添加公司信息
     * @return
     */
    @PostMapping("/add")
    public Result add(@RequestBody HupCompany hupCompany){
        boolean save = service.save(hupCompany);
        if (save){
            return Result.ok().code(HttpStatusEnum.SUCCESS.getCode()).message("公司信息添加成功");
        }else {
            return Result.error().code(HttpStatusEnum.ERROR.getCode()).message("公司信息添加失败");
        }
    }
    /**
     * 删除信息(逻辑删除)
     * @return
     */
    @DeleteMapping("/remove")
    public Result remove(@RequestParam Integer id ){
        boolean b = service.updateById(new HupCompany().setId(id).setIsActive(0));
        if (b){
            return Result.ok().code(HttpStatusEnum.SUCCESS.getCode()).message("删除公司信息成功");
        }else {
            return Result.error().code(HttpStatusEnum.ERROR.getCode()).message("删除公司信息失败");
        }
    }
    /**
     * 根据id获取公司信息
     * @return
     */
    @GetMapping("/getById/{id}")
    public Result getById(@PathVariable String id){
        HupCompany busClaimReport = service.getById(id);
        if (busClaimReport != null){
            return Result.ok().data(busClaimReport).code(HttpStatusEnum.SUCCESS.getCode()).message("查询公司信息成功");
        }else {
            return Result.error().data(busClaimReport).code(HttpStatusEnum.ERROR.getCode()).message("查询公司信息失败");
        }
    }
    /**
     * 更新数据
     */
    @PutMapping("/update")
    public Result update(@RequestBody HupCompany hupCompany){
        boolean b = service.updateById(hupCompany);
        if (b){
            return Result.ok().code(HttpStatusEnum.SUCCESS.getCode()).message("修改公司信息成功");
        }else {
            return Result.error().code(HttpStatusEnum.ERROR.getCode()).message("修改公司信息失败");
        }
    }
    /**
     * 查询所有的企业信息
     * @return
     */
    @GetMapping("/queryAllCompany")
    public Result queryAllCompany(){
        // 修改指派状态为 未指派、调度人id情况
        List<HupCompany> list = service.list();
        if (list.size()>0){
            return Result.ok().code(HttpStatusEnum.SUCCESS.getCode()).data(list).message("查询所有的企业信息成功");
        }else {
            return Result.error().code(HttpStatusEnum.ERROR.getCode()).data(list).message("查询所有的企业信息失败");
        }
    }
}
